<?
include('adodb/adodb-exceptions.inc.php'); 
require ("comun/ini.php");
if(isset($_POST['JsonEnv'])){
	$JsonRec = new Services_JSON();
	$JsonEnv = new Services_JSON();
	$JsonRec=$JsonRec->decode(str_replace("\\","",$_POST['JsonEnv']));
	try {
		switch($JsonRec->Forma){
			case 0:	{
				$q = "SELECT * FROM rrhh.historial_nom WHERE cont_cod=$JsonRec->Contrato ORDER BY int_cod desc";
				$r = $conn->Execute($q);
				$q = "SELECT * FROM rrhh.contrato WHERE int_cod=$JsonRec->Contrato";
				$rC = $conn->Execute($q);
				$Resultado[0]=$r->EOF ? muestrafecha($rC->fields['cont_fec_ini']) : FechaIni($rC->fields['cont_tipo'],"/",muestrafecha($r->fields['nom_fec_fin']),1,0);
				$Resultado[1]=FechaFin($rC->fields['cont_tipo'],"/",$Resultado[0],1,0,$conn,$JsonRec->Contrato);
				$Resultado[2]=$rC->fields['cont_tipo']==3 ? true : false;
				echo $JsonEnv->encode($Resultado);
				break;
			}
			case 1:	{
				$q = "SELECT * FROM rrhh.nomina WHERE cont_cod=$JsonRec->Contrato";
				$r = $conn->Execute($q);
				if (!$r->EOF){
					$Fecha=split ("-" ,$r->fields['nom_fec_ini']);
					$FechaIni= $Fecha[2]."/".$Fecha[1]."/".$Fecha[0];
					$Fecha=split ("-" ,$r->fields['nom_fec_fin']);
					$FechaFin= $Fecha[2]."/".$Fecha[1]."/".$Fecha[0];
				}
				$Resultado[0]=$FechaIni;
				$Resultado[1]=$FechaFin;
				echo $JsonEnv->encode($Resultado);
				break;
			}
			case 2:	{
				$q = "DELETE FROM rrhh.parametrossistema WHERE 1=1";
				$r = $conn->Execute($q);
				$q = "INSERT INTO rrhh.parametrossistema (multi_empresa,emp_pred,enlace_presupuesto) VALUES ('$JsonRec->MultiEmpresa',$JsonRec->Empresa,'$JsonRec->Enlace')";
				$r = $conn->Execute($q);
				break;
			}
			case 3:	{
				$q = " UPDATE rrhh.var_tra SET var_tra_val=0 WHERE int_cod IN (SELECT A.int_cod FROM ";
				$q.= " rrhh.var_tra AS A INNER JOIN rrhh.cont_tra AS B ON A.tra_cod = B.tra_cod";
				$q.= " INNER JOIN rrhh.variable AS C ON A.var_cod = C.int_cod WHERE	C.var_tipo=1";
				$q.= " AND	B.cont_cod = $JsonRec->Contrato AND A.var_tra_val<>0)";
				$r = $conn->Execute($q);
				echo "Operacion Realizada con Exito";
				break;
			}
			case 4:	{
				$Resultado[0]=false;
				switch($JsonRec->TipoVar){
					case "Cons":{
						$q = "SELECT cons_val FROM rrhh.constante WHERE int_cod=$JsonRec->Codigo";
						$r = $conn->Execute($q);
						$Resultado[0]= !$r->EOF ? (int)$r->fields['cons_val'] : false;
						break;
					}
					case "Vari":{
						$q = "SELECT var_tra_val FROM rrhh.var_tra WHERE var_cod=$JsonRec->Codigo";
						$r = $conn->Execute($q);
						$Resultado[0]= !$r->EOF ? (int)$r->fields['var_tra_val'] : false;
						break;
					}
				}
				echo $JsonEnv->encode($Resultado);
				break;
			}
			case 5:	{ //PAGOS DE ACUMULADOS
				switch($JsonRec->Accion){
					case 0:{
						$q="SELECT int_cod FROM rrhh.concepto WHERE conc_nom='$JsonRec->Concepto'";
						$r= $conn->Execute($q);
						if(!$r->EOF){
							echo $r->fields['int_cod'];
						}
						break;
					}
					case 1:{
						$q = "SELECT int_cod, tra_fec_ing AS fechai,tra_fec_egr AS fechae FROM rrhh.trabajador WHERE int_cod='$JsonRec->Trabajador'";
						$RTrabajadores = $conn->Execute($q);
						$q = "SELECT conc_form,conc_tipo FROM rrhh.concepto WHERE int_cod='$JsonRec->Concepto'";
						$RConceptos = $conn->Execute($q);
						if(!$RTrabajadores->EOF && !$RConceptos->EOF){
						 	// ESTO ES PARA QUE ME TOME LA FECHA DE INICIO Y FIN DE LA NOMINA LAS QU HAYAN SIDO PROGRAMADAS EN EL MODULO DE VACACIONES
							$q = "SELECT * FROM rrhh.preparar_vac WHERE tra_cod=".$RTrabajadores->fields['int_cod'];
							$rFVac = $conn->Execute($q);
							if(!$rFVac->EOF){
								$FechaIni=muestrafecha($rFVac->fields['fecha_ini']);
								$FechaFin=muestrafecha($rFVac->fields['fecha_fin']);
							}else{
								$FechaIni=date("d/m/Y");
								$FechaFin=date("d/m/Y");
							}
						 	// FIN
							$CFormula=Formula($conn,$RConceptos->fields['conc_form'],$RTrabajadores->fields['int_cod'],-1,$FechaIni,$FechaFin,$RTrabajadores->fields['fechai'],$RTrabajadores->fields['fechae']);
							$TFC['F']=!empty($CFormula) ? $CFormula : 0;
							$TFC['T']=$RConceptos->fields['conc_tipo'];
							echo $JsonEnv->encode($TFC);
						}
						break;
					}
					case 2:{
						$Fecha=date("Y-m-d");
						$q = "INSERT INTO rrhh.pago_acumulado (tra_cod,descripcion,fecha,observaciones,tipo) VALUES ($JsonRec->Trabajador,'$JsonRec->Descripcion','$Fecha','$JsonRec->Obser',$JsonRec->Tipo)";
						$RAux = $conn->Execute($q);
						$q = "SELECT MAX(int_cod) as int_cod FROM rrhh.pago_acumulado";
						$Pago = $conn->Execute($q);
						$PagoCI=$Pago->fields['int_cod'];
						foreach( $JsonRec->Conceptos AS $CV ){
							$q = "INSERT INTO rrhh.pago_acumulado_conc (pago_acum_cod,conc_cod,conc_tipo,conc_val) VALUES ($PagoCI,$CV[0],$CV[2],$CV[1])";
							$RAux = $conn->Execute($q);
						}
						if($JsonRec->Tipo==2){
//							$q = "UPDATE rrhh.trabajador SET tra_estatus='3' WHERE int_cod=$JsonRec->Trabajador";
//							$RAux = $conn->Execute($q);
						}
						echo true;
						break;
					}
					case 3:{
						$q="SELECT SUM(B.cuota_monto) AS saldo FROM rrhh.prestamo AS A INNER JOIN rrhh.prestamo_cuotas AS B ON A.int_cod=B.pres_cod WHERE A.tra_cod=$JsonRec->Trabajador AND A.pres_estatus=1 AND B.cuota_estatus!='Cancelado' GROUP BY A.int_cod";
						$rP= $conn->Execute($q);
						$q="SELECT A.int_cod,A.conc_nom,A.conc_tipo FROM rrhh.concepto AS A INNER JOIN rrhh.mod_conc AS B ON A.int_cod=B.conc_cod WHERE B.modulo=0";
						$rC= $conn->Execute($q);
						if(!$rP->EOF && !$rC->EOF){
							$PC[0]=$rC->fields['int_cod'];
							$PC[1]=$rC->fields['conc_nom'];
							$PC[2]= $rC->fields['conc_tipo']=='1' ? -1*$rP->fields['saldo'] : $rP->fields['saldo'];
							echo $JsonEnv->encode($PC);
						}else{
							echo false;
						}
						break;
					}
				}
				break;
			}
			case 6:	{
				switch($JsonRec->Accion){
					case 0:{
						$q = "SELECT tra_fec_ing,tra_sueldo FROM rrhh.trabajador WHERE int_cod=$JsonRec->Trabajador";
						$r = $conn->Execute($q);
						$Resultado[0]= !$r->EOF ? date("d/m/Y",strtotime($r->fields['tra_fec_ing'])) : "";
						$Resultado[1]= !$r->EOF ? muestrafloat($r->fields['tra_sueldo']) : "";
						echo $JsonEnv->encode($Resultado);
						break;
					}
					case 1:{
						$q = "SELECT cont_tipo FROM rrhh.contrato WHERE int_cod=$JsonRec->Contrato";
						$r = $conn->Execute($q);
						echo !$r->EOF ? $r->fields['cont_tipo'] : false;
						break;
					}
					case 3:{
						$q = "SELECT (SUM(conc_val) - (CASE WHEN (SELECT sum(B.conc_val) AS conc_val FROM rrhh.pago_acumulado AS A INNER JOIN rrhh.pago_acumulado_conc AS B ON A.int_cod=B.pago_acum_cod WHERE A.tra_cod=$JsonRec->Trabajador) IS NULL THEN 0 ELSE (SELECT sum(B.conc_val) AS conc_val FROM rrhh.pago_acumulado AS A INNER JOIN rrhh.pago_acumulado_conc AS B ON A.int_cod=B.pago_acum_cod WHERE A.tra_cod=$JsonRec->Trabajador) END)) AS total FROM rrhh.acum_tra_conc WHERE tra_cod=$JsonRec->Trabajador";
						$r = $conn->Execute($q);
						echo !empty($r->fields['total']) ? $r->fields['total'] : 0;
						break;
					}
					case 4:{
						$q = "SELECT MAX(pres_num) as cant_activo FROM rrhh.prestamo WHERE tra_cod=$JsonRec->Trabajador AND pres_estatus=1";
						$r = $conn->Execute($q);
						echo !is_null($r->fields['cant_activo']) ? $r->fields['cant_activo']+1 : 1;
						break;
					}
					case 5:{
						$q = "DELETE FROM rrhh.mod_conc WHERE modulo=0";
						$r = $conn->Execute($q);
						$q = "INSERT INTO rrhh.mod_conc (modulo,conc_cod) VALUES (0,$JsonRec->Concepto)";
						$r = $conn->Execute($q);
						echo true;
						break;
					}
					case 6:{
						$q = "SELECT cont_tipo FROM rrhh.contrato WHERE int_cod=$JsonRec->Contrato";
						$r = $conn->Execute($q);
						$TipoContrato=$r->fields['cont_tipo'];
						$FechaIni=$JsonRec->Fecha;
						$FechaFin=FechaFin($TipoContrato,"/",$FechaIni,1,0);
						for($i=0;$i<$JsonRec->Cuotas-1;$i++){
							$FechaIni=FechaIni($TipoContrato,"/",$FechaFin,1,0);
							$FechaFin=FechaFin($TipoContrato,"/",$FechaIni,1,0);
						}
						$fecha=split("/",$FechaIni);
						if(date("Y")!=$fecha[2])
							echo true;
						else
						    echo false;
						break;
					}

				}
				break;
			}
			case 7:	{
				switch($JsonRec->Accion){
					case "HABPRIV.prn":{
						$q = "SELECT emp_rif FROM rrhh.empresa WHERE int_cod=".$_SESSION['EmpresaL'];
						$r = $conn->Execute($q);
						$rifAux= split("-",$r->fields['emp_rif'],20);
						$rif= $rifAux[0].$rifAux[1];
						$Mes= strlen($JsonRec->Mes)==1 ? ("0".$JsonRec->Mes) : $JsonRec->Mes;
						$Anoaux = $JsonRec->Ano;
						$Ano = $Anoaux[2].$Anoaux[3];
						//$archivo = 'NOMI'.$Mes.$Ano.'.prn';// no util por los momentos
						$q = "SELECT A.int_cod,A.tra_ced,A.tra_nom,A.tra_ape,A.tra_fec_nac,A.tra_nac, A.tra_sex, A.tra_estatus FROM rrhh.trabajador AS A INNER JOIN rrhh.cont_tra AS B ON A.int_cod=B.tra_cod WHERE A.tra_estatus = 0 OR A.tra_estatus = 3";
						//die($q);
						$r = $conn->Execute($q);
						$fp = fopen("HABPRIV.prn","w");
						while(!$r->EOF){
							$CedulaLetra= $r->fields['tra_nac']==0 ? 'V' : 'E';
							$CedulaNumeroAux=str_replace(".","",$r->fields['tra_ced']);
							$CedulaNumero= strlen($CedulaNumeroAux)==7 ? '0'.$CedulaNumeroAux: $CedulaNumeroAux; 
							$registro=$rif.'00'.$CedulaLetra.'00'.$CedulaNumero;
							$NombreAux=split(" ",$r->fields['tra_nom'],20);
							$Nombre= is_array($NombreAux) ? $NombreAux[0] : $NombreAux;
							$ApellidoAux=split(" ",$r->fields['tra_ape'],20);
							$Apellido= is_array($ApellidoAux) ? $ApellidoAux[0] : $ApellidoAux;
							$NombreApellido=$Nombre." ".$Apellido;
							$registro.=$NombreApellido;
							for($i=0;$i<(30-strlen($NombreApellido));$i++){
								$registro.=" ";
							}
							$FechaNac=split("-",$r->fields['tra_fec_nac'],20);
							$registro.=$FechaNac[0].$FechaNac[1].$FechaNac[2];
							$registro.=$r->fields['tra_sex']==0 ? "1" : "2";
							$registro.=$r->fields['tra_estatus']==0 ? "0" : "1";
							$Trabajador=$r->fields['int_cod'];
							$q = "SELECT SUM(B.conc_val) AS valor FROM rrhh.historial_nom AS A INNER JOIN rrhh.hist_nom_tra_conc AS B ON A.int_cod=B.hnom_cod WHERE  B.tra_cod=$Trabajador AND B.conc_cod=$JsonRec->Concepto AND to_char(nom_fec_ini,'MM')='$Mes' AND to_char(nom_fec_ini,'YYYY')='$JsonRec->Ano'";
							//die($q);
							$rC = $conn->Execute($q);
							if(!$rC->EOF){
								$Monto= !empty($rC->fields['valor']) ? $rC->fields['valor'] : 0;
							}else{
								$Monto=0;
							}
							$Monto=str_replace(".","",str_replace(",","",muestrafloat($Monto)));
							for($i=0;$i<(10-strlen($Monto));$i++){
								$registro.="0";
							}
							$registro.=$Monto * 3;
							$registro.=$Mes.$Ano;
							$registro.='NOUBICADO';
							fputs($fp,$registro); 
							fwrite($fp,"\r\n"); 
							$r->movenext();
						}
						fclose($fp);
						echo true;
						break; 
					}
					case "NOMINA.txt":{
						$q = "SELECT emp_nom FROM rrhh.empresa WHERE int_cod=".$_SESSION['EmpresaL'];
						$rE = $conn->Execute($q);
						$q = "SELECT * FROM rrhh.historial_nom WHERE int_cod=$JsonRec->Nomina";
						$rN = $conn->Execute($q);
						$q = "SELECT B.id,A.nro_cuenta,B.descripcion FROM finanzas.cuentas_bancarias AS A INNER JOIN public.banco AS B ON A.id_banco=B.id WHERE A.id=$JsonRec->Cuenta";
						$rC = $conn->Execute($q);
		//				$FI=split("-",$rN->fields['nom_fec_fin']);
			//			$Dia= strlen($FI[2]-1)<2 ?  ("0".($FI[2]-1)) : ($FI[2]-1);
						$Cuenta=str_replace("-","",$rC->fields['nro_cuenta']);
						$Banco=$rC->fields['id'];
						$registro="000000".date("Ymd").date("His").date("Ymd")."08000000000000000000002457000001 CI";
						for($i=0;$i<(22-strlen($Cuenta));$i++){
							$registro.="0";
						}
						$registro.=$Cuenta." ";
						for($i=0;$i<84;$i++){
							$registro.="0";
						}
						$Contador=1;
						$TotalNomina=0;
						$q = "SELECT DISTINCT A.tra_cod,A.tra_nom,B.tra_ced,B.tra_num_cta,B.tra_tipo_cta FROM rrhh.hist_nom_tra_conc AS A INNER JOIN rrhh.trabajador AS B ON A.tra_cod=B.int_cod WHERE A.hnom_cod=$JsonRec->Nomina AND B.ban_cod=$Banco AND B.tra_tip_pag=2 ORDER BY A.tra_nom";
						$r = $conn->Execute($q);
						$fp = fopen("NOMINA.txt","w");
						fputs($fp,$registro); 
						fwrite($fp,"\r\n"); 
						while(!$r->EOF){
							$registro=$Contador;
							//CORRELATIVO
							for($i=0;$i<(6-strlen($Contador));$i++){
								$registro="0".$registro;
							}
							$Contador++;
							//TIPO DE CUENTA
							$TipoCuenta=" LS";
							$registro.=$TipoCuenta;
							//NRO DE CUENTA
							$NroCuenta=str_replace("-","",$r->fields['tra_num_cta']);
							for($i=0;$i<(20-strlen($NroCuenta));$i++){
								$registro.="0";
							}
							$registro.=$NroCuenta;
							//Letra Y Numero de Cedula
							$CedulaLetra= $r->fields['tra_nac']==0 ? 'V' : 'E';
							$CedulaNumero=str_replace(".","",$r->fields['tra_ced']);
							$registro=$registro.$CedulaLetra;
							for($i=0;$i<(10-strlen($CedulaNumero));$i++){
								$registro.="0";
							}
							$registro.=$CedulaNumero;
							//Serial de Servicio , Nro de Cuota Y Referencia
							$registro.="0000100000          ";
							// Monto
							$q = "SELECT conc_desc, (CASE WHEN (conc_tipo=1) THEN (conc_val*-1) ELSE (conc_val) END) AS valor FROM rrhh.hist_nom_tra_conc WHERE hnom_cod=$JsonRec->Nomina AND conc_val<>0 AND tra_cod=".$r->fields['tra_cod']." ORDER BY conc_tipo, conc_cod";
							$rM = $conn->Execute($q);
							$TotalTrabajador=0;
							while(!$rM->EOF) {
								$TotalTrabajador+=number_format($rM->fields['valor'],2,".","");
								$rM->movenext();
							}
							$TotalNomina+=$TotalTrabajador;
							$TotalTrabajador=str_replace(".","",str_replace(",","",muestrafloat($TotalTrabajador)));
							for($i=0;$i<(15-strlen($TotalTrabajador));$i++){
								$registro.="0";
							}
							$registro.=$TotalTrabajador;
							//Tipo de Operacion,indicador de proceso y descripcion de la operacion
							$registro.="C PAGO DE NOMINA                          ";
							//Aplica cargo, codigo de rechazo y descripcion de rechazo
							$registro.="000                                         ";
							//relleno
							$registro.="000000000";  
							fputs($fp,$registro); 
							fwrite($fp,"\r\n"); 
							$r->movenext();
						} 
						//Correlativo
						$registro="999999   ";
						//Nombre de la empresa
						$Nombre=$rE->fields['emp_nom'];
						$registro.=$Nombre;
						for($i=0;$i<(37-strlen($Nombre));$i++){
							$registro.=" ";
						}
						//Nro Registros
						$Contador--;
						for($i=0;$i<(6-strlen($Contador));$i++){
							$registro.="0";
						}
						$registro.=$Contador;
						$TotalNomina=str_replace(".","",str_replace(",","",muestrafloat($TotalNomina)));
						for($i=0;$i<(15-strlen($TotalNomina));$i++){
							$registro.="0";
						}
						$registro.=$TotalNomina;
						for($i=0;$i<(15-strlen($TotalNomina));$i++){
							$registro.="0";
						}
						$registro.=$TotalNomina."000001000017";
						for($i=0;$i<76;$i++){
							$registro.="0";
						}
						fputs($fp,$registro); 
						fclose($fp);
						echo true;
						break; 
					}
					case "NOMINABOD.txt":{
						$q = "SELECT emp_nom FROM rrhh.empresa WHERE int_cod=".$_SESSION['EmpresaL'];
						$rE = $conn->Execute($q);
						$q = "SELECT * FROM rrhh.historial_nom WHERE int_cod=$JsonRec->Nomina";
						$rN = $conn->Execute($q);
						$q = "SELECT B.id,A.nro_cuenta,B.descripcion FROM finanzas.cuentas_bancarias AS A INNER JOIN public.banco AS B ON A.id_banco=B.id WHERE A.id=$JsonRec->Cuenta";
						$rC = $conn->Execute($q);
						$Banco=$rC->fields['id'];
						$q = "SELECT DISTINCT A.tra_cod,A.tra_nom,B.tra_ced,B.tra_num_cta,B.tra_tipo_cta FROM rrhh.hist_nom_tra_conc AS A INNER JOIN rrhh.trabajador AS B ON A.tra_cod=B.int_cod WHERE A.hnom_cod=$JsonRec->Nomina AND B.ban_cod=$Banco AND B.tra_tip_pag=2 ORDER BY A.tra_nom";
						//die($q);
						$r = $conn->Execute($q);
						$fp = fopen("NOMINABOD.txt","w"); 
						while(!$r->EOF){
							$CedulaNumero=trim(str_replace(".","",$r->fields['tra_ced']));
							$registro=$CedulaNumero;
							for($i=0;$i<(15-strlen($CedulaNumero));$i++){
								$registro.=" ";
							}
							$cuenta=trim(str_replace(".","",str_replace("-","",$r->fields['tra_num_cta'])));
							for($i=0;$i<(12-strlen($cuenta));$i++){
								$registro.="0";
							}
							$registro.=$cuenta;
							$q = "SELECT conc_desc, (CASE WHEN (conc_tipo=1) THEN (conc_val*-1) ELSE (conc_val) END) AS valor FROM rrhh.hist_nom_tra_conc WHERE hnom_cod=$JsonRec->Nomina AND conc_val<>0 AND tra_cod=".$r->fields['tra_cod']." ORDER BY conc_tipo, conc_cod";
							$rM = $conn->Execute($q);
							$TotalTrabajador=0;
							while(!$rM->EOF) {
								$TotalTrabajador+=number_format($rM->fields['valor'],2,".","");
								$rM->movenext();
							}
							$TotalNomina+=$TotalTrabajador;
							$monto=str_replace(".","",str_replace(",","",muestrafloat($TotalTrabajador)));
							for($i=0;$i<(15-strlen($monto));$i++){
								$registro.="0";
							}
							$registro.=$monto."Nomina......";
							fputs($fp,$registro); 
							fwrite($fp,"\r\n"); 
							$r->movenext();
						} 
						fclose($fp);
						echo true;
						break; 
					}
					case "NOMINAVENEZUELA.txt":{
						$q = "SELECT e.emp_nom FROM rrhh.empresa as e WHERE e.int_cod = ".$_SESSION['EmpresaL'];
						$rE = $conn->Execute($q);
						
						$q = "SELECT B.id,A.nro_cuenta,B.descripcion FROM finanzas.cuentas_bancarias AS A INNER JOIN public.banco AS B ON A.id_banco=B.id WHERE A.id=$JsonRec->Cuenta";
						$rC = $conn->Execute($q);
						
						$Banco=$rC->fields['id'];
						
						$q = "SELECT sum(CASE WHEN (A.conc_tipo=1) THEN (A.conc_val::numeric(20,2)*-1) ELSE (A.conc_val::numeric(20,2)) END) AS valor, B.tra_ced, B.tra_nom, B.tra_ape, B.tra_num_cta FROM rrhh.hist_nom_tra_conc AS A INNER JOIN rrhh.trabajador AS B ON A.tra_cod=B.int_cod  WHERE A.hnom_cod=$JsonRec->Nomina AND B.ban_cod=$Banco AND B.tra_tip_pag=2 GROUP BY A.tra_cod,B.tra_ced,B.tra_num_cta,B.tra_nom, B.tra_ape ORDER BY A.tra_cod";
						$r = $conn->Execute($q);
						
						$fp = fopen("NOMINAVENEZUELA.txt","w");
						
						$Empresa = $rE->fields['emp_nom'];
						$registro = $Empresa;
						for($i=0;$i<(41-strlen($Empresa));$i++){
								$registro.=" ";
						}
						$Constante = '1';
						$registro.=$Constante;
						$registro.= trim(str_replace(".","",str_replace("-","",$rC->fields['nro_cuenta']))); 
						$Codigo = $JsonRec->Cuenta;
						$registro.=$Codigo;
						
						$Fecha= date('d').'/'.date('m').'/'.date('y');
						$registro.=$Fecha;
						$Constante = '000785000000003293';
						$registro.=$Constante;						 
						fputs($fp,$registro); 
						fwrite($fp,"\r\n");
						
						while(!$r->EOF){
							$Constante = '1';
							$registro = $Constante;
							$cuenta=trim(str_replace(".","",str_replace("-","",$r->fields['tra_num_cta'])));
							$registro.=$cuenta;
							$Constante = '000500000001770';
							$registro.=$Constante;
							$apellido = trim($r->fields['tra_ape']);
							$nombre = trim($r->fields['tra_nom']);
							$trabajador =  $apellido.' '.$nombre;
							$registro.= $trabajador;
							for($i=0;$i<(41-strlen(utf8_decode($trabajador)));$i++){
								$registro.=" ";
							}
							$sueldo=str_replace(".","",$r->fields['valor']);
							for($i=0;$i<(10-strlen($sueldo));$i++){
								$registro.="0";
							}						
		
							$registro.=$sueldo."003293";
							fputs($fp,$registro); 
							fwrite($fp,"\r\n");
							$r->movenext();
						}					
						fclose($fp);
						echo true;
						break; 
					}
					case "PRENOMINA_PROVINCIAL.txt":{
						$q = "SELECT e.emp_nom, e.emp_rif FROM rrhh.empresa as e WHERE e.int_cod = ".$_SESSION['EmpresaL'];
						$rE = $conn->Execute($q);
						
						$q = "SELECT B.id,A.nro_cuenta,B.descripcion FROM finanzas.cuentas_bancarias AS A INNER JOIN public.banco AS B ON A.id_banco=B.id WHERE A.id=$JsonRec->Cuenta";
						$rC = $conn->Execute($q);
						
						$Banco=$rC->fields['id'];
						
						$q = "SELECT sum(CASE WHEN (A.conc_tipo=1) THEN (A.conc_val::numeric(20,2)*-1) ELSE (A.conc_val::numeric(20,2)) END) AS valor FROM rrhh.hist_nom_tra_conc AS A INNER JOIN rrhh.trabajador AS B ON A.tra_cod=B.int_cod  WHERE A.hnom_cod=$JsonRec->Nomina AND B.ban_cod=$Banco AND B.tra_tip_pag=2 ";
						$rI =  $conn->Execute($q);
						
						$q = "SELECT sum(CASE WHEN (A.conc_tipo=1) THEN (A.conc_val::numeric(20,2)*-1) ELSE (A.conc_val::numeric(20,2)) END) AS valor, B.tra_ced, B.tra_nac, B.tra_nom, B.tra_ape, B.tra_num_cta FROM rrhh.hist_nom_tra_conc AS A INNER JOIN rrhh.trabajador AS B ON A.tra_cod=B.int_cod WHERE A.hnom_cod=$JsonRec->Nomina AND B.ban_cod=$Banco AND B.tra_tip_pag=2 GROUP BY A.tra_cod,B.tra_ced,B.tra_num_cta, B.tra_nac, B.tra_nom, B.tra_ape ORDER BY A.tra_cod";
						$r = $conn->Execute($q);
						
						$fp = fopen("PRENOMINA_PROVINCIAL.txt","w");
						//Constante
						$Constante = '0101';
						$registro =$Constante;
						// Nro. cuenta empresa
						$Cuenta = trim(str_replace(".","",str_replace("-","",$rC->fields['nro_cuenta'])));
						$registro.=$Cuenta;
						//Numero de trabajadores en registro
						$TotalRegistro=  $r->RecordCount();
						for($i=0;$i<(7-strlen($TotalRegistro));$i++){
								$registro.="0";
							}
						$registro.=$TotalRegistro;
						//Total Nomina
						$TotalImporte =str_replace(".","",$rI->fields['valor']);
						for($i=0;$i<(17-strlen($TotalImporte));$i++){
								$registro.="0";
							}
						$registro.=$TotalImporte;
						//Constante
						$Constante='VEB';
						$registro.=$Constante;
						//Fecha de la tranasaccion
						$Fecha= date('Ymd');
						$registro.=$Fecha;
						//Rif empresa
						$rif_empresa =str_replace("-","",$rE->fields['emp_rif']);
						$registro.= $rif_empresa;
						for($i=0;$i<(10-strlen($rif_empresa));$i++){
								$registro.=" ";
							}
						//Constante
						$Constante = "NOMINA  ";
						$registro.=$Constante;
						//Nombre de la empresa
						$Nombre=$rE->fields['emp_nom'];
						$registro.=$Nombre;
						for($i=0;$i<(40-strlen($Nombre));$i++){
								$registro.=" ";
							}
						fputs($fp,$registro); 
						fwrite($fp,"\r\n");
						while(!$r->EOF){
							$Constante = '02';
							$registro =$Constante;
							$cuenta=trim(str_replace(".","",str_replace("-","",$r->fields['tra_num_cta'])));
							$registro.=$cuenta;
							$nacionalidad = $r->fields['tra_nac'] == 0 ? 'V' : 'E';
							$cedula=trim(str_replace(".","",str_replace("-","",$r->fields['tra_ced'])));
							$registro.=$nacionalidad.$cedula;
							for($i=0;$i<(16-strlen($nacionalidad.$cedula));$i++){
								$registro.=" ";
							}
							$sueldo=str_replace(".","",$r->fields['valor']);
							for($i=0;$i<(17-strlen($sueldo));$i++){
								$registro.="0";
							}
							$registro.=$sueldo;
							$apellido = trim($r->fields['tra_ape']);
							$nombre = trim($r->fields['tra_nom']);
							$trabajador =  $nombre.' '.$apellido;
							$registro.= $trabajador;
							for($i=0;$i<(70-strlen(utf8_decode($trabajador)));$i++){
								$registro.=" ";
							}
							$Constante = "00";
							$registro.= $Constante;
							for($i=0;$i< 23;$i++){
								$registro.=" ";
							}
							fputs($fp,$registro); 
							fwrite($fp,"\r\n");
							$r->movenext();
						} 					
						fclose($fp);
						echo true;
						break; 
					}
					case "NOMINAMERCANTIL.txt":{
						$q = "SELECT e.emp_nom, e.emp_rif FROM rrhh.empresa as e WHERE e.int_cod = ".$_SESSION['EmpresaL'];
						$rE = $conn->Execute($q);
						
						$q = "SELECT int_cod, cont_nom, nom_fec_ini, nom_fec_fin FROM rrhh.historial_nom WHERE int_cod=$JsonRec->Nomina";
						//die($q);
						$rN = $conn->Execute($q);
						
						$q = "SELECT B.id,A.nro_cuenta,B.descripcion FROM finanzas.cuentas_bancarias AS A INNER JOIN public.banco AS B ON A.id_banco=B.id WHERE A.id=$JsonRec->Cuenta";
						$rC = $conn->Execute($q);
						
						$Banco=$rC->fields['id'];
						
						$q = "SELECT sum(CASE WHEN (A.conc_tipo=1) THEN (A.conc_val::numeric(20,2)*-1) ELSE (A.conc_val::numeric(20,2)) END) AS valor FROM rrhh.hist_nom_tra_conc AS A INNER JOIN rrhh.trabajador AS B ON A.tra_cod=B.int_cod  WHERE A.hnom_cod=$JsonRec->Nomina AND B.ban_cod=$Banco AND B.tra_tip_pag=2 ";
						$rI =  $conn->Execute($q);
						
						$q = "SELECT sum(CASE WHEN (A.conc_tipo=1) THEN (A.conc_val::numeric(20,2)*-1) ELSE (A.conc_val::numeric(20,2)) END) AS valor, B.tra_ced, B.tra_nac, B.tra_nom, B.tra_ape, B.tra_num_cta FROM rrhh.hist_nom_tra_conc AS A INNER JOIN rrhh.trabajador AS B ON A.tra_cod=B.int_cod WHERE A.hnom_cod=$JsonRec->Nomina AND B.ban_cod=$Banco AND B.tra_tip_pag=2 GROUP BY A.tra_cod,B.tra_ced,B.tra_num_cta, B.tra_nac, B.tra_nom, B.tra_ape ORDER BY A.tra_cod";
						$r = $conn->Execute($q);
						
						$fp = fopen("NOMINAMERCANTIL.txt","w");
						//Constante
						$Constante = '00800301';
						$registro =$Constante;
						
						//Rif empresa
						$estatusjuridico = substr(str_replace("-","",$rE->fields['emp_rif']),0,1);
						//var_dump($estatusjuridico);
				   		$registro.=	$estatusjuridico;
						$rif_empresa = substr(str_replace("-","",$rE->fields['emp_rif']),1,10);
						for($i=0;$i<(10-strlen($rif_empresa));$i++){
								$registro.="0";
							}
						$registro.=	$rif_empresa;
											
						//Descripcion de la nomina
						$nomina = $rN->fields['cont_nom'].' '.$rN->fields['nom_fec_ini'].' A '.$rN->fields['nom_fec_fin'];
						$registro.= $nomina; 
						for($i=0;$i<(33-strlen($nomina));$i++){
								$registro.="0";
							}
						//Nro.lote
						$lote =  $rN->fields['int_cod'];
						$registro.= $lote;						
						
						//Constante
						$constante = '105VEF';
						$registro.=$constante;						
						// Nro. cuenta empresa
						$Cuenta = trim(str_replace(".","",str_replace("-","",$rC->fields['nro_cuenta'])));
						$registro.=$Cuenta;
						
						//Total Nomina
						for($i=0;$i<(15-strlen($TotalImporte));$i++){
								$registro.="0";
							}						
						$TotalImporte =str_replace(".","",$rI->fields['valor']);
						$registro.=$TotalImporte;						
						
						//Numero de trabajadores en registro
						$TotalRegistro=  $r->RecordCount();
						for($i=0;$i<(5-strlen($TotalRegistro));$i++){
								$registro.="0";
							}						
						$registro.=$TotalRegistro;


						//Fecha de la transaccion
						$Fecha= date('Ymd');
						$registro.=$Fecha;

						fputs($fp,$registro); 
						fwrite($fp,"\r\n");
						while(!$r->EOF){
							//constante
							$Constante = '01';
							$registro =$Constante;
							//nacionalidad
							$nacionalidad = $r->fields['tra_nac'] == 0 ? 'V' : 'E';
							$registro.= $nacionalidad;
							//cedula
							$cedula=trim(str_replace(".","",str_replace("-","",$r->fields['tra_ced'])));
							for($i=0;$i<(10-strlen($cedula));$i++){
								$registro.="0";
							}							
							$registro.=$cedula;
							//nombre del trabajador
							$apellido = trim($r->fields['tra_ape']);
							$nombre = trim($r->fields['tra_nom']);
							$trabajador =  $nombre.' '.$apellido;
							$registro.= $trabajador;
							for($i=0;$i<(60-strlen(utf8_decode($trabajador)));$i++){
								$registro.=" ";
							}
							//Constante
							$Constante = '1105';
							$registro.= $Constante;
							//Nro. Cuenta Trabajador
							$cuenta=trim(str_replace(".","",str_replace("-","",$r->fields['tra_num_cta'])));
							$registro.=$cuenta;
							//monto trabajador
							$sueldo=str_replace(".","",$r->fields['valor']);
							for($i=0;$i<(15-strlen($sueldo));$i++){
								$registro.="0";
							}
							$registro.=$sueldo;
							//monto trabajador
							$sueldo=str_replace(".","",$r->fields['valor']);
							for($i=0;$i<(15-strlen($sueldo));$i++){
								$registro.="0";
							}
							$registro.=$sueldo;
							fputs($fp,$registro); 
							fwrite($fp,"\r\n");
							$r->movenext();
						}					
						fclose($fp);
						echo true;
						break; 
					}
					case "NOMINACARIBE.txt":{
						$q = "SELECT * FROM rrhh.historial_nom WHERE int_cod=$JsonRec->Nomina";
						$rN = $conn->Execute($q);
						$q = "SELECT B.id,A.nro_cuenta,B.descripcion FROM finanzas.cuentas_bancarias AS A INNER JOIN public.banco AS B ON A.id_banco=B.id WHERE A.id=$JsonRec->Cuenta";
						$rC = $conn->Execute($q);
						$Banco=$rC->fields['id'];
						$q = "SELECT DISTINCT A.tra_cod,A.tra_nom,B.tra_ced,B.tra_num_cta,B.tra_tipo_cta FROM rrhh.hist_nom_tra_conc AS A INNER JOIN rrhh.trabajador AS B ON A.tra_cod=B.int_cod WHERE A.hnom_cod=$JsonRec->Nomina AND B.ban_cod=$Banco AND B.tra_tip_pag=2 ORDER BY A.tra_nom";
						//die($q);	
						$r = $conn->Execute($q);
						$q = "SELECT sum(CASE WHEN (conc_tipo=1) THEN (conc_val::numeric(20,2)*-1) ELSE (conc_val::numeric(20,2)) END) AS valor  
							FROM rrhh.hist_nom_tra_conc AS A 
							INNER JOIN rrhh.trabajador AS B ON A.tra_cod=B.int_cod 
							WHERE A.hnom_cod=$JsonRec->Nomina AND B.ban_cod = $Banco AND B.tra_tip_pag=2 ";	
						//die($q);	
						$rMontoTotal = $conn->Execute($q);						
						$fp = fopen("NOMINACARIBE.txt","w"); 
						//Fecha
						$Fecha = date("dmY");
						$registro = $Fecha."/";
						//Cantidad de Trabajadores
						$TotalRegistro =  $r->RecordCount();
						for($i=0;$i<(2-strlen($TotalRegistro));$i++){
								$registro.="0";
							}						
						$registro.= $TotalRegistro."/";
						//Monto Total Nomina
						$TotalNomina = str_replace(".","",str_replace(",","",muestrafloat(number_format($rMontoTotal->fields['valor'],2,".",""))));
						for($i=0;$i<(30-strlen($TotalNomina));$i++){
							$registro.="0";
						}
						$registro.= $TotalNomina;
						fputs($fp,$registro); 
						fwrite($fp,"\r\n"); 
						while(!$r->EOF){
							//Identificador de Cuenta
							$Identificador = "C/";
							$registro=$Identificador;
							//Numero de Cuenta
							$cuenta=trim(str_replace(".","",str_replace("-","",$r->fields['tra_num_cta'])));
							$registro.=$cuenta."/";
							//Numero de Cedula
							$CedulaNumero=trim(str_replace(".","",$r->fields['tra_ced']));
							for($i=0;$i<(8-strlen($CedulaNumero));$i++){
								$registro.="0";
							}
							$registro.=$CedulaNumero."/";
							//Monto Trabajador
							$q = "SELECT conc_desc, (CASE WHEN (conc_tipo=1) THEN (conc_val*-1) ELSE (conc_val) END) AS valor FROM rrhh.hist_nom_tra_conc WHERE hnom_cod=$JsonRec->Nomina AND conc_val<>0 AND tra_cod=".$r->fields['tra_cod']." ORDER BY conc_tipo, conc_cod";
							$rM = $conn->Execute($q);
							$TotalTrabajador=0;
							while(!$rM->EOF){
								$TotalTrabajador+=number_format($rM->fields['valor'],2,".","");
								$rM->movenext();
							}
							$monto=str_replace(".","",str_replace(",","",muestrafloat($TotalTrabajador)));
							for($i=0;$i<(20-strlen($monto));$i++){
								$registro.="0";
							}
							$registro.=$monto;
							fputs($fp,$registro); 
							fwrite($fp,"\r\n"); 
							$r->movenext();
						} 
						fclose($fp);
						echo true;
						break; 
					}					
					case "MINTRA.txt":{
						$q = "SELECT DISTINCT ON (A.tra_ced) A.tra_nom, A.tra_ape, A.tra_nac, A.tra_ced, A.tra_sex, A.tra_fec_nac, C.car_nom, CT.cont_cod, A.tra_fec_ing, A.tra_fec_egr, A.tra_estatus, MAX(S.tra_sueldo) as monto
						FROM rrhh.trabajador AS A 
						INNER JOIN rrhh.cargo AS C ON C.int_cod = A.car_cod
						INNER JOIN rrhh.cont_tra AS CT ON CT.tra_cod = A.int_cod
						INNER JOIN rrhh.hist_nom_tra_sueldo AS S ON A.int_cod = S.tra_cod
						INNER JOIN rrhh.historial_nom AS N ON S.hnom_cod = N.int_cod
						WHERE EXTRACT(MONTH FROM N.nom_fec_ini) >= $JsonRec->Mes  AND EXTRACT(MONTH FROM N.nom_fec_ini) <= $JsonRec->Mes AND
						EXTRACT(YEAR FROM N.nom_fec_ini) >= $JsonRec->Ano  AND EXTRACT(YEAR FROM N.nom_fec_ini) <= $JsonRec->Ano
						GROUP BY A.tra_nom, A.tra_ape, A.tra_nac, A.tra_ced, A.tra_sex, A.tra_fec_nac, C.car_nom, CT.cont_cod, A.tra_fec_ing, A.tra_estatus, A.tra_fec_egr ";
						$r = $conn->Execute($q);
						$fp = fopen("MINTRA.txt","w");
						while(!$r->EOF){
							$NombreAux=split(" ",$r->fields['tra_nom'],20);
							$Nombre= is_array($NombreAux) ? $NombreAux[0].";". $NombreAux[1]: $NombreAux;
							$ApellidoAux=split(" ",$r->fields['tra_ape'],20);
							$Apellido= is_array($ApellidoAux) ? $ApellidoAux[0].";".$ApellidoAux[1] : $ApellidoAux;
							$Nacionalidad= $r->fields['tra_nac'] == 0 ? '1' : '2'; 
							$Cedula=str_replace(".","",$r->fields['tra_ced']);
							$Sexo= $r->fields['tra_sex'] == 0 ? '1' : '2';
							$Nacimiento=str_replace("/","",muestrafecha($r->fields['tra_fec_nac']));
							$Cargo= $r->fields['car_nom'];
							$Contrato= '1'; ///Siempre es 1 mientra no exista un contrato de obreros
							$Ingreso=str_replace("/","",muestrafecha($r->fields['tra_fec_ing']));
							$Egreso = split("-", $r->fields['tra_fec_egr'],20);
							if(is_array($Egreso)){
								$Estatus=1;
							}else{
								if(($Egreso[0] == $JsonRec->Ano) && ($Egreso[1] == $JsonRec->Mes)){
									$Estatus=2;
								} else {
									$Estatus=1;
								}
							}
									
							//$Estatus=$r->fields['tra_estatus'] == 0? '1': '2' ;
							$Sueldo=$r->fields['monto']."00";//Arreglar los decimales... esto esta muy chimbo
							$registro = $Nombre.";".$Apellido.";".$Nacionalidad.";".$Cedula.";".$Sexo.";".$Nacimiento.";".$Cargo.";".$Contrato.";".$Ingreso.";".$Estatus.";".$Sueldo;
							fputs($fp,$registro); 
							fwrite($fp,"\r\n"); 
							$r->movenext();
						}
						fclose($fp);
						echo true;
						break; 
					}
				}
				break;
			}
			case 8:	{
				switch($JsonRec->Accion){
					case 0:{
						$q = "UPDATE rrhh.trabajador SET tra_sueldo=$JsonRec->Sueldo WHERE car_cod=$JsonRec->Cargo";
						$r = $conn->Execute($q);
						echo true;
						break;
					}
				}
				break;
			}
			case 9:	{
				switch($JsonRec->Accion){
					case 0:{
						$q = "SELECT car_sueldo FROM rrhh.cargo WHERE int_cod=$JsonRec->Cargo";
						$r = $conn->Execute($q);
						echo empty($r->fields['car_sueldo']) ? '0,00' : muestrafloat($r->fields['car_sueldo']);
						break;
					}
				}
				break;
			}
			case 10:	{ //FERIADOS
				switch($JsonRec->Accion){
					case 0:{
						$q="SELECT * FROM rrhh.feriados WHERE fecha='$JsonRec->Fecha'";
						$r= $conn->Execute($q);
						if($r->EOF){
							$q = "INSERT INTO rrhh.feriados (fecha) VALUES ('$JsonRec->Fecha')";
							$RAux = $conn->Execute($q);
							$Estatus=1;
						}else{
							$q = "DELETE FROM rrhh.feriados WHERE fecha='$JsonRec->Fecha'";
							$RAux = $conn->Execute($q);
							$Estatus=2;
						}
						echo $Estatus;
						break;
					}
					case 1:{
						$q = "DELETE FROM rrhh.feriados WHERE to_char(fecha,'YYYY')='$JsonRec->Ano'";
						$RAux = $conn->Execute($q);
						echo true;
						break;
					}
					case 2:{
						for($Mes=1;$Mes<=12;$Mes++){
							for($Dia=1;$Dia<=DiaFin($Mes);$Dia++){
								if(date("l",mktime(0,0,0,$Mes,$Dia,$JsonRec->Ano))=="Saturday" || date("l",mktime(0,0,0,$Mes,$Dia,$JsonRec->Ano))=="Sunday"){
									$Fecha=$JsonRec->Ano."-".$Mes."-".$Dia;
									$q="SELECT * FROM rrhh.feriados WHERE fecha='$Fecha'";
									$r= $conn->Execute($q);
									if($r->EOF){
										$q = "INSERT INTO rrhh.feriados (fecha) VALUES ('$Fecha')";
										$RAux = $conn->Execute($q);
									}
								}
							}
						}
						echo true;
						break;
					}
				}
				break;
			}
			case 11:	{ //PAGAR VACACIONES
				switch($JsonRec->Accion){
					case 0:{
						echo FechaFinVacaciones($conn,$JsonRec->FechaIni,$JsonRec->Dias);
						break;
					}
					case 1:{
						$Dias= intval((strtotime(guardafecha($JsonRec->FechaFin))-strtotime(guardafecha($JsonRec->FechaIni)))/86400);
						$DiasTotal=$Dias;
						$Fecha = $JsonRec->FechaIni;
						for($i=0;$i<$Dias;$i++){
							$q = "SELECT * FROM rrhh.feriados WHERE fecha='$Fecha'";
							$rF = $conn->Execute($q);
							if(!$rF->EOF){
								$DiasTotal--;
							}
//							echo "Fecha: ".$Fecha." Dias: ".$DiasTotal."Feriado=".$rF->EOF."\n";
							$Fecha=FechaIni('0','/',$Fecha,1,0); 
							
						} 
						echo  $DiasTotal;
						break;
					}
					case 2:{
						$q = "SELECT * FROM rrhh.mod_conc WHERE modulo=1";
						$rC = $conn->Execute($q);
						if(!$rC->EOF){
							$Contrato= $rC->fields['conc_cod'];
							$q = "DELETE FROM rrhh.cont_tra WHERE cont_cod=$Contrato";
							$rExec = $conn->Execute($q);
							foreach($JsonRec->Trabajadores AS $Trabajador){
								if($Trabajador[5]){
									$q = "INSERT INTO rrhh.cont_tra (cont_cod,tra_cod) VALUES ($Contrato,$Trabajador[0])";
									$rExec = $conn->Execute($q);
									$FechaIni=guardafecha($Trabajador[1]);
									$FechaFin=guardafecha($Trabajador[2]);
									$q = "DELETE FROM rrhh.preparar_vac WHERE tra_cod=$Trabajador[0]";
									$rExec = $conn->Execute($q);
									$q = "INSERT INTO rrhh.preparar_vac (tra_cod,fecha_ini,fecha_fin,dias,dias_pendientes) VALUES ($Trabajador[0],'$FechaIni','$FechaFin',$Trabajador[3],$Trabajador[4])";
									$rExec = $conn->Execute($q);
								}else{
									$q = "SELECT * FROM rrhh.vacaciones WHERE tra_cod=$Trabajador[0]";
									$rV = $conn->Execute($q);
									if($rV->EOF){
										$q = "INSERT INTO rrhh.vacaciones(tra_cod,vac_dias_pendientes) VALUES ($Trabajador[0],$Trabajador[4])";
										$rExec = $conn->Execute($q);
									}else{
										$q = "UPDATE rrhh.vacaciones SET vac_dias_pendientes=$Trabajador[4] WHERE tra_cod=$Trabajador[0]";
										$rExec = $conn->Execute($q);
									}
								}
							}
							echo true;
						}else{
							echo false;
						}
						break;
					}
					case 3:{
						$q="SELECT * FROM rrhh.mod_conc WHERE modulo=1";
						$r= $conn->Execute($q);
						if($r->EOF){
							$q = "INSERT INTO rrhh.mod_conc (modulo,conc_cod) VALUES (1,$JsonRec->Contrato)";
							$RAux = $conn->Execute($q);
							//Actualiza contrato a tipo vacaciones
							$q = "UPDATE rrhh.contrato SET cont_vac ='$cont_vac' WHERE int_cod = $JsonRec->Contrato";
							$RAux = $conn->Execute($q);
						}else{
							$q = "UPDATE rrhh.mod_conc SET conc_cod=$JsonRec->Contrato WHERE modulo=1";
							$RAux = $conn->Execute($q);
							//Actualiza contrato a tipo vacaciones
							$q = "UPDATE rrhh.contrato SET cont_vac ='$cont_vac' WHERE int_cod = $JsonRec->Contrato";
							$RAux = $conn->Execute($q);
						}
						$q="SELECT * FROM rrhh.mod_conc WHERE modulo=2";
						$r= $conn->Execute($q);
						if($r->EOF){
							$q = "INSERT INTO rrhh.mod_conc (modulo,conc_cod) VALUES (2,$JsonRec->Constante1)";
							$RAux = $conn->Execute($q);
						}else{
							$q = "UPDATE rrhh.mod_conc SET conc_cod=$JsonRec->Constante1 WHERE modulo=2";
							$RAux = $conn->Execute($q);
						}
						$q="SELECT * FROM rrhh.mod_conc WHERE modulo=3";
						$r= $conn->Execute($q);
						if($r->EOF){
							$q = "INSERT INTO rrhh.mod_conc (modulo,conc_cod) VALUES (3,$JsonRec->Constante2)";
							$RAux = $conn->Execute($q);
						}else{
							$q = "UPDATE rrhh.mod_conc SET conc_cod=$JsonRec->Constante2 WHERE modulo=3";
							$RAux = $conn->Execute($q);
						}
						echo true;
						break;
					}
					case 4:{
						$q="SELECT * FROM rrhh.mod_conc WHERE modulo=4";
						$r= $conn->Execute($q);
						if($r->EOF){
							$q = "INSERT INTO rrhh.mod_conc (modulo,conc_cod) VALUES (4,$JsonRec->Constante1)";
							$RAux = $conn->Execute($q);
						}else{
							$q = "UPDATE rrhh.mod_conc SET conc_cod=$JsonRec->Constante1 WHERE modulo=4";
							$RAux = $conn->Execute($q);
						}					
						$q="SELECT * FROM rrhh.mod_conc WHERE modulo=5";
						$r= $conn->Execute($q);
						if($r->EOF){
							$q = "INSERT INTO rrhh.mod_conc (modulo,conc_cod) VALUES (5,$JsonRec->Constante2)";
							$RAux = $conn->Execute($q);
						}else{
							$q = "UPDATE rrhh.mod_conc SET conc_cod=$JsonRec->Constante2 WHERE modulo=5";
							$RAux = $conn->Execute($q);
						}
						echo true;
						break;
					}
				}
				break;
			}
			case 12:	{
				switch($JsonRec->Accion){
					case 0:{
						$objeto = $JsonRec->tabla;
						$oObjeto = new $objeto();
						$oObjeto = $oObjeto->getListadoKeys();
						echo $JsonEnv->encode($oObjeto);
						break;
					}
					case 1:{
						$q = "SELECT * FROM rrhh.listado WHERE int_cod=$JsonRec->reporte";
						$rListado= $conn->Execute($q);
						$objeto = $rListado->fields['lis_tabla']=='Rac' ? 'trabajador' : $rListado->fields['lis_tabla'] ;
						$oObjeto = new $objeto();
						$oObjeto = $oObjeto->getListadoKeys();
						for($i=0;$i<count($oObjeto);$i++){

							$q = "SELECT * FROM rrhh.lis_campos WHERE lis_cod=$JsonRec->reporte AND campo='".$oObjeto[$i]['C']."'";
							$r= $conn->Execute($q);
							$oObjeto[$i]['Com1'] = $r->EOF ? '0' : '1'; 
							$oObjeto[$i]['Com2'] = $r->EOF ? $oObjeto[$i]['D'] : $r->fields['cam_nom']; 
							$oObjeto[$i]['Com3'] = $r->EOF ? '40' : $r->fields['cam_lon']; 
							$oObjeto[$i]['Com4'] = $r->EOF ? 'C' : $r->fields['cam_ali']; 

							$q = "SELECT * FROM rrhh.lis_condiciones WHERE lis_cod=$JsonRec->reporte AND campo='".$oObjeto[$i]['C2']."'";
							$r= $conn->Execute($q);
							$oObjeto[$i]['Con1'] = $r->EOF ? '0' : '1'; 
							$oObjeto[$i]['Con2'] = $r->EOF ? '=' : $r->fields['cam_ope']; 
							$oObjeto[$i]['Con3'] = $r->EOF ? '' : $r->fields['cam_valor']; 

							$q = "SELECT * FROM rrhh.lis_orden WHERE lis_cod=$JsonRec->reporte AND campo='".$oObjeto[$i]['C2']."'";
							$r= $conn->Execute($q);
							$oObjeto[$i]['O'] = $r->EOF ? '0' : '1'; 

						}
						$resul[0]=$rListado->fields['lis_tabla'];
						$resul[1]=$rListado->fields['lis_titulo'];
						$resul[2]=$oObjeto;
						$resul[3]=$rListado->fields['lis_logo'];
						$resul[4]=$rListado->fields['lis_nro_pag'];
						$resul[5]=$rListado->fields['lis_fecha'];
						$resul[6]=$rListado->fields['lis_ori'];
						$resul[7]=$rListado->fields['lis_tipo_hoja'];
						$resul[8]=$rListado->fields['lis_tam_let'];
						echo $JsonEnv->encode($resul);
						break; 
					}
					case 2:{
						$JsonRec->logo = $JsonRec->logo ?  1 : 0;
						$JsonRec->nroP = $JsonRec->nroP ?  1 : 0;
						$JsonRec->fecha = $JsonRec->fecha ?  1 : 0;
						$q = "INSERT INTO rrhh.listado (lis_titulo,lis_logo,lis_nro_pag,lis_fec,lis_tabla,lis_ori,lis_tipo_hoja,lis_tam_let) VALUES ('$JsonRec->titulo',$JsonRec->logo,$JsonRec->nroP,$JsonRec->fecha,'$JsonRec->tabla','$JsonRec->orientacion_hoja','$JsonRec->tipo_hoja',$JsonRec->tamano_letra)";
						$conn->Execute($q);
						$q = "SELECT MAX(int_cod) AS int_cod FROM rrhh.listado";
						$r= $conn->Execute($q);
						$lis_cod=$r->fields['int_cod'];
						for($i=0;$i<count($JsonRec->campos);$i++){
							$q = "INSERT INTO rrhh.lis_campos (lis_cod,campo,cam_nom,cam_lon,cam_ali) VALUES ($lis_cod,'".$JsonRec->campos[$i][0]."','".$JsonRec->campos[$i][1]."',".$JsonRec->campos[$i][2].",'".$JsonRec->campos[$i][3]."')";
							$conn->Execute($q);
						}
						for($i=0;$i<count($JsonRec->condiciones);$i++){
							$q = "INSERT INTO rrhh.lis_condiciones (lis_cod,campo,cam_ope,cam_valor) VALUES ($lis_cod,'".$JsonRec->condiciones[$i][0]."','".$JsonRec->condiciones[$i][1]."','".$JsonRec->condiciones[$i][2]."')";
							$conn->Execute($q);
						}
						for($i=0;$i<count($JsonRec->orden);$i++){
							$q = "INSERT INTO rrhh.lis_orden (lis_cod,campo) VALUES ($lis_cod,'".$JsonRec->orden[$i]."')";
							$conn->Execute($q);
						}
						echo true;
						break;
					}
					case 3:{
						$q = "DELETE FROM rrhh.listado WHERE int_cod=$JsonRec->reporte";
						$conn->Execute($q);
						echo true;
						break;
					}
				}
				break;
			}
			case 13:{//fecha de reverso de nomina
				$q = "SELECT * FROM rrhh.historial_nom WHERE cont_cod=$JsonRec->Contrato  ORDER BY int_cod DESC LIMIT 1";
				$r = $conn->Execute($q);
				if (!$r->EOF){
					$Fecha=split ("-" ,$r->fields['nom_fec_ini']);
					$FechaIni= $Fecha[2]."/".$Fecha[1]."/".$Fecha[0];
					$Fecha=split ("-" ,$r->fields['nom_fec_fin']);
					$FechaFin= $Fecha[2]."/".$Fecha[1]."/".$Fecha[0];
				}
				$Resultado[0]=$FechaIni;
				$Resultado[1]=$FechaFin;
				echo $JsonEnv->encode($Resultado);
				break;
			}
		}
	}catch( ADODB_Exception $e ){
//		echo ERROR_CATCH_GENERICO;
//		echo false;
		echo $e;
	}
} 
?>
